package com.luke.nio.zero_copy;

/**
 * 零拷贝
 * @Descrtption Test
 * @Author luke
 * @Date 2020/4/27
 * 参考：https://blog.csdn.net/cringkong/article/details/80274148
 **/
public class Test {


    /**
     *

     需求：读取一个磁盘中的文件，然后发送到网络（服务器端、客户端）

     用户上下文（用户态）：缓冲区
     内核态
     硬件

     硬件到内核态的拷贝称为 DMA拷贝

     内核态与用户态之间的拷贝是 CPU拷贝

     DMA拷贝是什么呢？ Direct Memory Access 直接内存访问 这种拷贝方式不使用到CPU 使用了总线进行传输


     1、上下文切换的次数： 1 1 1 1

     2、CPU拷贝的次数：1 1

     3、DMA拷贝的次数：1 1

     零拷贝：指的是没有CPU拷贝，可以有DMA拷贝。

     原生IO的方式将会发生 4次的上下文切换 2次的CPU拷贝

     */

}
